Go 加密椭圆:try 在无效点上进行操作 您所在的位置:网站首页 json 加密 Go 加密椭圆:try 在无效点上进行操作

Go 加密椭圆:try 在无效点上进行操作

2023-03-21 09:19| 来源: 网络整理| 查看: 265

在对有效负载进行签名后,我使用r和s值,然后将其解码回签名. 首先,我使用以下命令将字符串值转换为bigInt

myBigInt := new(big.Int) myBigInt.SetString(byteValue, 16)

然后将签名转换为

elliptic.Marshal(elliptic.P256(), &myBigIntR, &myBigIntS)

当我在当地做这件事时,我没有任何问题.然后我把这个推送到GitHub,render.com会拿到它.但是,在服务器上,我得到:

我收到:

Mar 15 05:36:31 PM 2023/03/15 17:36:31 http: panic serving : crypto/elliptic: attempted operation on invalid point Mar 15 05:36:31 PM goroutine 1252 [running]: Mar 15 05:36:31 PM net/http.(*conn).serve.func1() Mar 15 05:36:31 PM /usr/local/go/src/net/http/server.go:1854 +0xbf Mar 15 05:36:31 PM panic({0xc5ff40, 0xfaae70}) Mar 15 05:36:31 PM /usr/local/go/src/runtime/panic.go:890 +0x263 Mar 15 05:36:31 PM crypto/elliptic.panicIfNotOnCurve({0xfbc088?, 0x15d3950?}, 0x40?, 0xc000100400?) Mar 15 05:36:31 PM /usr/local/go/src/crypto/elliptic/elliptic.go:215 +0xa5 Mar 15 05:36:31 PM crypto/elliptic.Marshal({0xfbc088, 0x15d3950}, 0x15d3950?, 0xc0002c2020?) Mar 15 05:36:31 PM /usr/local/go/src/crypto/elliptic/elliptic.go:105 +0x31

我想不出服务器版本和本地版本之间会有什么不同. 有没有人见过这个.谷歌没有太多我可能会提出的明显问题.

使用Sigr和Sigs值:

v2signature := new(refs.Signature) v2signature.SetScheme(refs.ECDSA_SHA512) signatureData := elliptic.Marshal(elliptic.P256(), &sigR, &sigS) v2signature.SetSign(signatureData) v2signature.SetKey(containerOwnerKey.Bytes()) //1. this should be the container owner var bearerV2 acl.BearerToken bearerToken.WriteToV2(&bearerV2) bearerV2.SetSignature(v2signature)

这来自使用持有者令牌访问远程服务器上的assets资源 的SDK. 我正在使用两个值r和s创建一个新签名,方案为ECDSA_SHA512,然后将其附加到承载令牌



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有